import { fetchGet, fetchPost } from '@/api/axiosConfig'

// 登录状态 登录动作
const state = {
    userInfo: JSON.parse(sessionStorage.getItem('userInfo')), // 设置用户登录后取得的信息
    token: sessionStorage.getItem('token'),
    roles: [] // 用户角色
}

const mutations = {
    SET_TOKEN: (state, token) => {
        state.token = token
    },
    SET_ROLES: (state, roles) => {
        state.roles = roles
    },
    SET_USERINFO: (state, userInfo) => {
        state.userInfo = userInfo
    }
}

const actions = {
    // 登录
    login({ commit }, userInfo) {
        // 登录 解构出 用户 传过来的 用户名、用户密码、用户身份
        const { username, userpassword } = userInfo
        return new Promise((resolve, reject) => {
            // 这里应该用 await 返回的数据进行设置 token
            // fetchPost('/v1/login/index', {
            //     email: username,
            //     password: userpassword,
            // }).then((value) => {
            //     const token = value.data.auth.access_token
            //     const userInfo = value.data
            //     const sidebar = value.data.route
            //     commit('SET_TOKEN', token)
            //     commit('SET_USERINFO', userInfo)
            //     sessionStorage.setItem('token', token)
            //     sessionStorage.setItem('userInfo', JSON.stringify(userInfo))
            //     sessionStorage.setItem('sidebar', JSON.stringify(sidebar))
            //     resolve(userInfo)
            // }).catch((e) => {
            //     console.log('登录错误信息：', e)
            // })

            // 使用时需要注销 开始
            commit('SET_TOKEN', 'token')
            commit('SET_USERINFO', 'userInfo')
            sessionStorage.setItem('token', 'token')
            sessionStorage.setItem('userInfo', JSON.stringify('userInfo'))
            sessionStorage.setItem('sidebar', JSON.stringify('sidebar'))
            resolve('userInfo')
            // 使用时需要注销 结束
        })
    },
    // 获取用户信息
    getInfo({ commit, state }) {
        return new Promise((resolve) => {
            // fetchGet('/v1/login/status', {}).then((value) => {
            //     const rolesStr = value.data.status
            //     console.log('账户角色：', rolesStr)
            //     let roles = []
            //     if (rolesStr === 'clientfather') {
            //         roles = ['clientfather']
            //     } else if (rolesStr === 'clientson') {
            //         roles = ['clientson']
            //     } else if (rolesStr === 'makefather') {
            //         roles = ['makefather']
            //     } else if (rolesStr === 'makeson') {
            //         roles = ['makeson']
            //     } else if (rolesStr === 'personal') {
            //         roles = ['personal']
            //     }
            //     commit('SET_ROLES', roles)
            //     resolve({ roles })
            //     sessionStorage.setItem('status', rolesStr)
            // }).catch((e) => {
            //     console.log('获取权限错误信息：', e)
            // })
            let roles = ['admin'];
            resolve({ roles })
            commit('SET_ROLES', roles)
            sessionStorage.setItem('status', rolesStr)
        })
    },
    // 重置 token
    resetToken({ commit }) {
        return new Promise((resolve) => {
            commit('SET_TOKEN', '')
            commit('SET_ROLES', [])
            commit('SET_USERINFO', {})
            sessionStorage.removeItem('token')
            sessionStorage.removeItem('userInfo')
            sessionStorage.removeItem('sidebar')
            resolve()
        })
    }
}

export default {
    namespaced: true,
    state,
    mutations,
    actions
}